草庐IT

python GUI 与 Swing 相比?

全部标签

java - 我如何为我的 Java 应用程序的用户前端决定是使用 Swing GUI 还是轻量级 Web 客户端?

当涉及到用户界面时,我似乎总是在内心挣扎。我建立了一个应用程序“引擎”,并倾向于将用户界面推迟到我的算法工作之后。然后我反复尝试决定如何让用户与我的程序交互。就个人而言,我是命令行的粉丝,但我不能指望我的用户普遍如此。在web2.0和ajax时代,我真的很喜欢浏览器的无限可能。另一方面,制作一个Swing前端也不难,而且您通常可以指望向用户呈现更一致的表现(尽管使用像YUI或jQuery这样的良好javascript框架对规范化浏览器大有帮助)。显然,这两种方法都有其优点和缺点。那么,什么标准/参数/情况应该让我使用轻量级(例如基于网络的)GUI?什么标准/参数/情况应该导致我使用更重

java - 如何在不重新启动应用程序的情况下更改 java swing 外观?

是否有一种特定的方法可以改变swing应用程序的外观,而无需在每次用户更改LAF时都重新启动应用程序?我正在寻找一种解决方案,其中可以从配置对话框中选择LAF,它会在应用时直接更改,而不必退回到告诉用户重新启动应用程序。目前我记得在属性文件中选择的LAF,并在启动时在任何窗口打开之前设置它。 最佳答案 来自Javatutorial:您首先需要通过调用UIManager.setLookAndFeel来设置新外观:UIManager.setLookAndFeel(lnfName);然后,为了使现有组件反射(reflect)新的外观和感觉

java - 在工作线程中阻塞 Java Swing 用户的模式

正如大多数Java程序员所知,对SwingGUI的更新应该只在AWT事件调度线程上完成,建议长时间运行的进程在“工作”线程上执行,更新发送到事件调度线程使用SwingUtilities.invokeAndWait()或SwingUtilities.invokeLater()。当长时间运行的进程完成时,您如何阻止用户继续使用应用程序?您是否将控件灰显,然后让工作线程使用上面提到的SwingUtilities调用重新启用它们?是否有更好的替代模式? 最佳答案 我会考虑3种解决方案:禁用面板的组件:这通常是我所做的。不幸的是,Swing没

Java Swing getSize() 返回不准确的值?

最简单地说,我试图使用组件的宽度来设置其父容器的大小。但是,为组件返回的宽度偏移了大约4个像素。更多详情:我有一个对话框,其中的子面板在中间水平分布。对话框应始终与此子面板列表一样宽,并在列表太长时使用滚动条。我只是尝试使用1个子面板来开始。无论我做什么,返回的子面板的大小总是错误大约4个像素。我可以看到子面板右侧有一个非常烦人的4像素间隙,使我的对话框看起来很可怕。随着更多子面板的添加,效果显然会更加复杂。我尝试使用什么来获取宽度:sup-panel.getSize().width;sub-panel.getBounds().width;sub-panel.getWidth();su

java - Swing:JDialogs 如何与 JFrame 对话

我正在构建我的第一个Swing应用程序,并试图弄清楚我的JDialogs(当用户选择JMenuItem时专门调用)如何更新JFrame的主客户区中的组件,该主客户区是整个应用程序。这是我想出的设计,但不知道它是否:(1)很糟糕,(2)不是标准(因此最好)的方式,或者(3)如果我完全在这里偏离基地。非常感谢任何建议。基本上,用户选择一个JMenuItem,它启动一个JDialog。用户与对话框上的组件交互,然后单击“完成”。如果一切都通过验证,JDialog将关闭,我希望父窗口(一个JFrame)更新其状态(并最终波及到其组件)。我的设计:有一个作为JFrame子类(我的应用程序)成员的

java - 网络 Swing 游戏中的多线程 : using invokeLater vs locks

我正在编写一个简单的自上而下的太空游戏,并且正在扩展它以允许通过网络与多个玩家一起玩。我读了很多书,但这是我第一次这样做,我希望能得到一些关于选择合理设计的建议。我的GUI是使用Swing编写的。每秒30次,计时器触发,并根据内存中gameWorld对象中的数据重新绘制我的GUI(本质上是带有位置的船舶和射弹列表等)。游戏世界的物理更新也是使用这个计时器进行的。因此,对于单人游戏实现,一切都发生在EDT上,并且效果很好。现在,我有单独的线程处理来自其他玩家的传入数据包。我想根据这些数据包包含的内容更新我的gameWorld对象中的数据。我的问题是,我应该使用invokeLater来进行

两个组件的java swing布局

+--------------------------------------------+|+-------++----------+|||+---+||+-----+|||||A||||B|||||+---+||+-----+|||+-------++----------+|+--------------------------------------------+^||Center背景:我有一个JButton(“A”),大小为50x25,位于JPanel(FlowLayout.CENTER)中JLabel(“B”),大小为100x25,位于JPanel(FlowLayout.RI

java - 是否有任何不是特定于 IDE 的 Java swing GUI 应用程序构建工具?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我使用过各种IDE(Eclipse、NetBeans、IntellijIDEA),尽管它们都有GUI构建器工具,但它们都以一种将开发人员绑定(bind)到使用该IDE的方式生成GUI。我目前正在开发一个开源项目,其中的GUI是使用Netbeans构建的,因此在另一个IDE中打开时无法使用。这对我不利,部分原因是我使用IntellijIDEA,但主要是因为该项目正在设置

java - 创建自定义阻塞 Java Swing 提示

这个问题已经解决了。我正在开发一个基于JavaSwing的项目,应用程序的外观和感觉是完全自定义的。我们试图在整个程序中保持一致的外观,默认的Java对话框窗口并不相同。当前问题需要控制阻止调用用户提示。类似于JOptionPane.showConfirmDialog()在这种情况下,静态调用会生成一个窗口,并暂停程序的流程,直到用户选择一个选项。它还返回选项的值。请注意,GUI本身在逻辑上并未锁定,但用户无法与其其余部分进行交互。intn=JOptionPane.showConfirmDialog(this,"Areyousure?","Confirm"JOptionPane.YES

Java Swing为一组按钮添加鼠标监听器(内部类)导致故障

好的,所以我要构建的程序很简单。有五个按钮,名称从0到4。如果按下其中任何一个按钮,那么控制台将打印数字0到4。我使用GridLayout将按钮放置在框架中。为了设置每个按钮,我创建了一个方法inicializarIG()。此inicializarIG()方法创建一个包含5个按钮的数组,并在for循环中执行以下操作:为按钮数组中的每个单元格创建一个按钮实例。为每个按钮设置一个mouseListener。每个Listener中要打印的值是不同的,它由循环的索引决定(我想通过使用索引来实现!)。将按钮添加到主框架。令人惊讶的是,这个简单的程序无法正常工作。无论按下什么按钮,它总是打印数字“